iT邦幫忙

2022 iThome 鐵人賽

DAY 18
0
自我挑戰組

數位影像處理系列 第 18

[Day 18]灰階與色彩轉換

  • 分享至 

  • xImage
  •  

今天要介紹基礎的灰階與色彩轉換技術,分別為:

  • 灰階轉換(Gray-Level-Transform)
  • 虛擬色彩轉換(Pseudocolor Transfomr)

1.灰階轉換

色彩影像經常需要轉換成灰階影像,才可使用灰階影像處理技術,以利進一步的影像處理或分析工作。OpenCV提供簡易的色彩灰階轉換函式,例如:
`gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)`

其中,img為輸入的色彩影像,gray為輸出的灰階影像。使用的公式為:
https://chart.googleapis.com/chart?cht=tx&chl=Y%20%3D%200.299R%20%2B%200.587G%20%2B%200.114B

本公式其實與YCrCb色彩模型的Y分量相同,主要是針對人類視覺系統對於色彩的反應而設計。程式碼如下:
import numpy as np
import cv2

img1 = cv2.imread("D:\Desktop\IThome\lena.bmp", -1)
img2 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)


cv2.imshow("Original", img1)
cv2.imshow("After", img2)
cv2.waitKey()
cv2.destroyAllWindows()

結果如下圖:
https://ithelp.ithome.com.tw/upload/images/20220925/20152370stadsubYU7.png


2.虛擬色彩轉換

虛擬色彩(Pseudocolor)轉換式在輸入灰階影像後,根據事先定義的色彩對應表,稱為色彩表(Color Map),藉以給定輸出的像素色彩值。由於給定的色彩值並非原始影像的真實色彩,因此稱為虛擬色彩(Pseudocolor)或假色彩(False-Color)。
OpenCV提供虛擬色彩轉換,事先定義許多色彩表,函式名稱為applyColorMap()。如下圖:

https://ithelp.ithome.com.tw/upload/images/20220925/20152370mvoTy2NArR.png

虛擬色彩影像處理的應用相當多,例如:機場的行李檢查X光設備。原始影樣為灰階影像,可以透過上述的影像處理技術給定虛擬的顏色,方便安檢人員檢查使用。
import numpy as np
import cv2

img1 = cv2.imread("D:\Desktop\IThome\lena.bmp", -1)
img2 = cv2.applyColorMap(img1, cv2.COLORMAP_HSV)


cv2.imshow("Original", img1)
cv2.imshow("After", img2)
cv2.waitKey()
cv2.destroyAllWindows()

注意applyColorMap裡面的第二個參數請參照色彩表以及需求變更。


上一篇
[Day 17]色彩模型
下一篇
[Day 19]色彩影像增強
系列文
數位影像處理30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言